<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    // promise是什么？
    // 1、主要用于异步计算，同步的方式处理异步操作
    // 2.可以解决回调地狱问题
    // 3、可以将异步操作队列化，按照期望的顺序执行

    // promise是一个对象，对象和函数的区别就是对象可以保存状态，函数不可以（闭包除外）
    // 并未剥夺函数return的能力，因此无需层层传递callback，进行回调获取数据
    // 代码风格，容易理解，便于维护
    // 多个异步等待合并便于解决

    // ajax({
    //   url: "./1.js",
    //   success: function () {
    //     ajax({
    //       url: "./2.js",
    //       success: function () {
    //         ajax({
    //           url: "./3.js",
    //           success: function () { }
    //         })
    //       }
    //     })
    //   }
    // })
    // 


    // 为什么会有promise？
    // 为了避免界面冻结（任务）

    // 同步：假设你去了一家饭店，找个位置，叫来服务员，这个时候服务员对你说，对不起我是“同步”服务员，
    // 我要服务完这张桌子才能招呼你。那桌客人明明已经吃上了，你只是想要个菜单，这么小的动作，
    // 服务员却要你等到别人的一个大动作完成之后，才能再来招呼你，这个便是同步的问题：也就是“顺序交付的工作1234，
    // 必须按照1234的顺序完成”。

    // 异步：则是将耗时很长的A交付的工作交给系统之后，就去继续做B交付的工作，。等到系统完成了前面的工作之后，再通过回调或者事件，继续做A剩下的工作。
    // AB工作的完成顺序，和交付他们的时间顺序无关，所以叫“异步”。

    // 事件监听
    // document.getElementById('#start').addEventListener('click', start, false);
    // function start() {
    //   // 响应事件，进行相应的操作
    // }
    // // 1.jquery on 监听
    // $('#start').on('click', start)

    // 2.比较常见的有ajax
    // $.ajax('http://www.wyunfei.com/', {
    //   success(res) {
    //     // 这里可以监听res返回的数据做回调逻辑的处理
    //   }
    // })
    //3.setTimeout()





  </script>
</body>

</html>